<?php

include('config.php');

/**
 * Connexion à la base de données
 * @param ressource $db 
 */
function connexion() {
// on se connecte à MySQL 
    global $urlbdd, $loginbdd, $pwdbdd, $db;
    $db = mysql_connect($urlbdd, $loginbdd, $pwdbdd);
    mysql_select_db('chasse_tresor');
    return $db;
}

/**
 * Fermeture de la connexion à la base de données
 * @param ressource $db 
 */
function close($db) {
    mysql_close($db);
}

/**
 * Execute une requete sql
 * @param String $sql
 * @return  resource Contient la resource de la requete executée
 */
function executer($sql) {
    $q = mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
    return $q;
}

/*
 * Fonction qui renvoie l'ensemble des sites de la BDD
 */

function listeSite() {
//Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "select idSite,nomSite,latitude,longitude from site ORDER BY nomSite;";
// Envoie de la requête
    $result = executer($sql);
//Creation d'un tableau pour les resultats
    $arr = array();
// Traitement de la requête
    if (@mysql_num_rows($result)) {
        while ($row = mysql_fetch_array($result)) {
            array_push($arr, $row);
        }
    }
//Fermeture de la connexion
    close($db);
//Convertion au format JSON pour la recuperation en javascript
    echo json_encode($arr);
}

/*
 * Fonction qui ajoute un site à la BDD
 */

function ajouterSite($adresse, $latitude, $longitude) {
//Connexion à la base
    $db = connexion();
//On enregistre les informations dans la base de donnee
    $sql = 'insert into site(nomSite, latitude, longitude) values ("' . $adresse . '","' . $latitude . '","' . $longitude . '")';
// Envoie de la requête
    $result = executer($sql);
//Récupération de l'id affecté à la ligne inséré
    $message = mysql_insert_id();
//Fermeture de la connexion
    close($db);
    echo $message;
}

/*
 * Fonction qui supprime un site de la BDD
 */

function supprimerSite($idSite) {
//Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "DELETE FROM site WHERE idSite = '" . $idSite . "';";
// Envoie de la requête
    $result = executer($sql);
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui renvoie l'ensemble des sites de la BDD
 */

function listePoint($idSite) {
//Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "select idPoint,nomPoint, latitude,longitude, infoPoint, depart from point where idSite='" . $idSite . "' ORDER BY idPoint;";
// Envoie de la requête
    $result = executer($sql);
//Creation d'un tableau pour les resultats
    $arr = array();
// Traitement de la requête
    if (@mysql_num_rows($result)) {
        while ($row = mysql_fetch_array($result)) {
            array_push($arr, $row);
        }
    }
//Fermeture de la connexion
    close($db);
//Convertion au format JSON pour la recuperation en javascript
    echo json_encode($arr);
}

/*
 * Fonction qui ajoute un point à la BDD
 */

function ajouterPoint($nomPoint, $idSite, $latitude, $longitude, $infoPoint, $depart) {
//Connexion à la base
    $db = connexion();
//On enregistre les informations dans la base de donnee
    $sql = 'insert into point(nomPoint, idSite, latitude, longitude, infoPoint, depart) values ("' . $nomPoint . '","' . $idSite . '","' . $latitude . '","' . $longitude . '","' . $infoPoint . '","' . $depart . '")';
    $result = executer($sql);
    $message = mysql_insert_id();
//Fermeture de la connexion
    close($db);
    echo $message;
}

/*
 * Fonction qui supprime un point de la BDD
 */

function supprimerPoint($idPoint) {
//Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "DELETE FROM point WHERE idPoint = '" . $idPoint . "';";
// Envoie de la requête
    $result = executer($sql);
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui permet de modifier un point de la BDD
 */

function modifierPoint($idPoint, $nomPoint, $latitude, $longitude, $infoPoint, $depart) {

//Connexion à la base
    $db = connexion();
    $sql = 'UPDATE point SET nomPoint = "' . $nomPoint . '", latitude = "' . $latitude . '", longitude = "' . $longitude . '", infoPoint = "' . $infoPoint . '", depart = "' . $depart . '" WHERE idPoint ="' . $idPoint . '"';

//On enregistre les informations dans la base de donnee
    if (mysql_query($sql)) {
        $idPoint = mysql_insert_id();
        $message = $idPoint;
    } else {
        $message = "Il y a eu une erreur dans la modification du point";
    }
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui recupere les informations d'un point
 */

function recupPoint($idPoint) {
//Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "select idPoint, nomPoint, latitude, longitude, infoPoint, depart from point where idPoint='" . $idPoint . "';";
// Envoie de la requête
    $result = mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
//Creation d'un tableau pour les resultats
    $arr = array();
// Traitement de la requête
    if (@mysql_num_rows($result)) {
        while ($row = mysql_fetch_array($result)) {
            array_push($arr, $row);
        }
    }
//Convertion au format JSON pour la recuperation en javascript
    echo json_encode($arr);
//Fermeture de la connexion
    close($db);
}

//fonction qui permet la suppression d'un utilisateur dans la base
function supprimerUser($id) {
//Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "DELETE FROM utilisateur WHERE id = '" . $id . "';";
// Envoie de la requête
    $result = executer($sql);
//Fermeture de la connexion
    close($db);
}

//fonction qui permet l'ajout d'un utilisateur dans la base
function ajouterUser($nom, $prenom, $login, $mdp, $ecriture, $lecture) {
//Connexion à la base
    $db = connexion();
//On enregistre les informations dans la base de donnee
    $sql = 'insert into utilisateur(nom, prenom, username, password, ecriture, lecture) values ("' . $nom . '","' . $prenom . '","' . $login . '","' . $mdp . '","' . $ecriture . '","' . $lecture . '")';
    $result = executer($sql);
    $message = mysql_insert_id();

//Fermeture de la connexion
    close($db);
}

function recupUser($id) {
//Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "select id, nom, prenom, username, password, ecriture, lecture from utilisateur where id='" . $id . "';";
// Envoie de la requête
    $result = mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
//Creation d'un tableau pour les resultats
    $arr = array();
// Traitement de la requête
    if (@mysql_num_rows($result)) {
        while ($row = mysql_fetch_array($result)) {
            array_push($arr, $row);
        }
    }
//Convertion au format JSON pour la recuperation en javascript
    echo json_encode($arr);
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui permet de modifier un utilisateur de la BDD
 */

function modifierUser($id, $nom, $prenom, $username, $password, $ecriture, $lecture) {

//Connexion à la base
    $db = connexion();
    $sql = 'UPDATE utilisateur SET nom = "' . $nom . '", prenom = "' . $prenom . '", username = "' . $username . '", ecriture = "' . $ecriture . '", lecture = "' . $lecture . '" WHERE id ="' . $id . '"';

//On enregistre les informations dans la base de donnee
    if (mysql_query($sql)) {
        $id = mysql_insert_id();
        $message = $id;
        echo $sql;
    } else {
        $message = "Il y a eu une erreur dans la modification de l'utilisateur";
    }
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui ajoute une activité quizz
 */

function ajoutQuizz($idPoint, $nomQuizz, $nbQuestion, $nbReponse, $type, $question, $imgQ, $reponse, $imgR, $correct) {

    //Connexion à la base
    $db = connexion();

    $i = 1;
    $j = 1;
    $message = "";
    $message1 = "";



    $sql = 'insert into activite(idPoint, type) values ("' . $idPoint . '","' . $type . '")';
    $result = executer($sql);
    $messageA = mysql_insert_id();



//On enregistre les informations dans la base de donnee
    //ajout du quizz dans Quizz
    $sql0 = 'insert into quizz(nomQuizz, nbQuestion, idPoint, idActivite) values ("' . $nomQuizz . '","' . $nbQuestion . '","' . $idPoint . '","' . $messageA . '")';
    $result = executer($sql0);
    $message = mysql_insert_id();


    //ajout des questions dans Question
    for ($i = 1; $i <= $nbQuestion; $i++) {
        $sql1 = 'insert into question(idQuizz, enonce, img) values ("' . $message . '","' . $question[$i] . '","' . $imgQ[$i] . '")';
        executer($sql1);
        $message1 = mysql_insert_id();
        echo $sql1;
    }

    for ($j = 1; $j <= $nbReponse; $j++) {
        $sql2 = 'insert into reponse(idQuizz, enonceR, correct, img, idQuestion) values ("' . $message . '","' . $reponse[$j] . '","' . $correct[$j] . '", "' . $imgR[$j] . '","' . $message1 . '")';
        executer($sql2);
        echo $sql2;
    }

//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui ajoute une activité TL
 */

function ajouterTL($idPoint, $type, $duree, $arc) {
    //Connexion à la base
    $db = connexion();
    $sql = 'insert into activite(idPoint, type) values ("' . $idPoint . '","' . $type . '")';
    $result = executer($sql);
    $message = mysql_insert_id();

    $sql2 = 'insert into temps_limite(idActivite, duree, arc) values("' . $message . '", "' . $duree . '", "' . $arc . '")';
    $result2 = executer($sql2);
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui ajoute une activité CF
 */

function ajouterCF($idPoint, $type, $precision, $arc) {
    //Connexion à la base
    $db = connexion();
    $sql = 'insert into activite(idPoint, type) values ("' . $idPoint . '","' . $type . '")';
    $result = executer($sql);
    $message = mysql_insert_id();

    $sql2 = 'insert into chaud_froid(idActivite, precis, arc) values("' . $message . '", "' . $precision . '", "' . $arc . '")';
    $result2 = executer($sql2);
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui affiche les activités du point
 */

function afficherActivite($idPoint) {
    //Connexion à la base
    $db = connexion();
    $sql = 'SELECT a.idActivite, a.idPoint, a.type, p.nomPoint
        FROM activite a
        JOIN point p
        ON a.idPoint = p.idPoint
        WHERE a.idPoint="' . $idPoint . '";';
    $result = executer($sql);

    //Creation d'un tableau pour les resultats
    $arr = array();
// Traitement de la requête
    if (@mysql_num_rows($result)) {
        while ($row = mysql_fetch_array($result)) {
            array_push($arr, $row);
        }
    }
//Convertion au format JSON pour la recuperation en javascript
    echo json_encode($arr);

    $message = mysql_insert_id();

//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui supprime une activite selon son id
 */

function supprimerActivite($idActivite) {
    //Connexion à la base
    $db = connexion();

    $sql = "SELECT type FROM activite WHERE idActivite='" . $idActivite . "';";
    $sql2 = 'DELETE FROM activite WHERE idActivite = "' . $idActivite . '";';

    $result = executer($sql);
    $row = mysql_fetch_array($result);

    $type = $row['type'];
    $sql3 = 'DELETE FROM ' . $type . ' WHERE idActivite=' . $idActivite;

    $result2 = executer($sql2);
    $result3 = executer($sql3);


    //Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui modifie une activité
 */

function modifierActivite($idActivite, $type) {
    //Connexion à la base
    $db = connexion();

    //Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui supprime un graphe de la BDD
 */

function supprimerGraphe($idGraphe) {
//Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "DELETE FROM arc WHERE idGraphe = '" . $idGraphe . "';";
// Envoie de la requête
    $result = executer($sql);
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui insère un arc dans la BDD
 */
function insererArc($idGraphe,$waypoints,$depart,$arrivee) {
//Connexion à la base
    $db = connexion();
//On enregistre les informations dans la base de donnee
    $sql = 'insert into arc(idGraphe,waypoints,depart,arrivee) values ("' . $idGraphe . '","' . $waypoints . '","' . $depart . '","' . $arrivee . '")';
// Envoie de la requête
    $result = executer($sql);
//Récupération de l'id affecté à la ligne inséré
    $message = mysql_insert_id();
//Fermeture de la connexion
    close($db);
    echo $message;
}

/*
 * Fonction qui renvoie la liste des arcs
 */

function listeArc($idGraphe) {
//Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "select id, waypoints,depart,arrivee from arc WHERE idGraphe = '" . $idGraphe . "';";
// Envoie de la requête
    $result = executer($sql);
//Creation d'un tableau pour les resultats
    $arr = array();
// Traitement de la requête
    if (@mysql_num_rows($result)) {
        while ($row = mysql_fetch_array($result)) {
            array_push($arr, $row);
        }
    }
//Fermeture de la connexion
    close($db);
//Convertion au format JSON pour la recuperation en javascript
    echo json_encode($arr);
}

function modifierArc($idPoly, $waypoints) {

//Connexion à la base
    $db = connexion();
    $sql = 'UPDATE arc SET waypoints = "' . $waypoints . '" WHERE id ="' . $idPoly . '"';
    $result = executer($sql);
//Fermeture de la connexion
    close($db);
}


function recupCF($idActivite) {
    //Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "select idCF, idActivite, precis, arc from chaud_froid where idActivite='" . $idActivite . "';";
// Envoie de la requête
    $result = mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
//Creation d'un tableau pour les resultats
    $arr = array();
// Traitement de la requête
    if (@mysql_num_rows($result)) {
        while ($row = mysql_fetch_array($result)) {
            array_push($arr, $row);
        }
    }
//Convertion au format JSON pour la recuperation en javascript
    echo json_encode($arr);
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui recupere une activite temps-limite
 */
function recupTL($idActivite) {
    //Connexion à la base
    $db = connexion();
// Creation de la requête SQL
    $sql = "select idTL, idActivite, duree, arc from temps_limite where idActivite='" . $idActivite . "';";
// Envoie de la requête
    $result = mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
//Creation d'un tableau pour les resultats
    $arr = array();
// Traitement de la requête
    if (@mysql_num_rows($result)) {
        while ($row = mysql_fetch_array($result)) {
            array_push($arr, $row);
        }
    }
//Convertion au format JSON pour la recuperation en javascript
    echo json_encode($arr);
//Fermeture de la connexion
    close($db);
}

/*
 * Fonction qui permet de modifier un point de la BDD
 */

function modifierTL($idActivite, $duree, $arc) {

//Connexion à la base
    $db = connexion();
    $sql = 'UPDATE temps_limite SET duree = "' . $duree . '", arc = "' . $arc . '" WHERE idActivite ="' . $idActivite . '"';

//On enregistre les informations dans la base de donnee
    if (mysql_query($sql)) {
        $result = executer($sql);
        echo "Modififcation réussie";
    } else {
        $message = "Il y a eu une erreur dans la modification du temps_limite";
    }
//Fermeture de la connexion
    close($db);
}

function modifierCF($idActivite, $precision, $arc) {

//Connexion à la base
    $db = connexion();
    $sql = 'UPDATE chaud_froid SET precis = "' . $precision . '", arc = "' . $arc . '" WHERE idActivite ="' . $idActivite . '"';

    echo $sql;
//On enregistre les informations dans la base de donnee
    if (mysql_query($sql)) {
        $result = executer($sql);
        echo "Modification réussie";
    } else {
        $message = "Il y a eu une erreur dans la modification du chaud_froid";
    }
//Fermeture de la connexion
    close($db);
}
?>
